#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
	char str[100100], str1[101000];
	fgets(str, 10000, stdin);
	int int1 = 0, int2 = 0;
	bool flag1 = true, flag2 = true;
	int i;
	for (i = 0; str[i] != ' '; i++)
		str1[i] = str[i];
	str1[i++] = '\0';
	int str1Length = strlen(str1);
	int strLength = strlen(str);
	if (str1Length == 0)
		flag1 = false;
	else
	{
		for (int i = 0; i < str1Length; i++)
		{
			if (str1[i] <= '9' && str1[i] >= '0')
				int1 = int1 * 10 + str1[i] - '0';
			else
			{
				flag1 = false;
				break;
			}
		}
	}
	if (i == strLength - 1)
		flag2 = false;
	else
	{
		for (; i < strLength - 1; i++)
		{
			if (str[i] <= '9' && str[i] >= '0')
				int2 = int2 * 10 + str[i] - '0';
			else
			{
				flag2 = false;
				break;
			}
		}
	}
	if (int1 < 1 || int1 > 1000)
		flag1 = false;
	if (int2 < 1 || int2 > 1000)
		flag2 = false;
	if (flag1)
		printf("%d + ", int1);
	else
		printf("? + ");
	if (flag2)
		printf("%d = ", int2);
	else
		printf("? = ");
	if (flag1 && flag2)
		printf("%d", int1 + int2);
	else
		printf("?");
	system("PAUSE");
	return 0;
}